Linear Automation Comprehensive skill for automating Linear issue tracking and engineering workflows. Core Workflows 1. Issue Lifecycle LINEAR ISSUE FLOW: ┌─────────────────┐ │ Triage │ │ (Backlog) │ └────────┬────────┘ ▼ ┌─────────────────┐ │ Todo │ │ (Prioritized) │ └────────┬────────┘ ▼ ┌─────────────────┐ │ In Progress │ │ (Active) │ └────────┬────────┘ ▼ ┌─────────────────┐ │ In Review │ │ (PR Created) │ └────────┬────────┘ ▼ ┌─────────────────┐ │ Done │ │ (Merged) │ └────────┬────────┘ ▼ ┌─────────────────┐ │ Cancelled │ │ (If needed) │ └─────────────────┘ 2. Automation Triggers automations : - name : auto_assign_on_start trigger : type : status_changed to : "In Progress" condition : assignee : null action : set_assignee : "{{trigger_user}}" - name : add_to_cycle trigger : type : issue_created labels : [ "sprint-ready" ] action : add_to_cycle : current set_priority : urgent - name : create_pr_reminder trigger : type : status_changed to : "In Progress" duration : "48 hours" condition : no_linked_pr : true action : add_comment : "@{{assignee}} Please link your PR" - name : close_on_merge trigger : type : github_pr_merged action : set_status : "Done" add_comment : "Closed via PR merge" Issue Templates Bug Report bug_template : title : "[Bug] {{summary}}" team : "Engineering" description : |
Description
{{description}}
Steps to Reproduce
1. { { step1 } } 2. { { step2 } } 3. { { step3 } }
Expected Behavior
{ { expected } }
Actual Behavior
{ { actual } }
Environment
- OS : { { os } } - Browser : { { browser } } - Version : { { version } }
Logs/Screenshots
{ { attachments } } labels : [ "bug" , "needs-triage" ] priority : "{{severity}}" estimate : null Feature Request feature_template : title : "[Feature] {{summary}}" team : "Product" description : |
Overview
{{overview}}
User Story
As a { { user_type } } , I want to { { action } } so that { { benefit } } .
Acceptance Criteria
- [ ] { { criteria1 } } - [ ] { { criteria2 } } - [ ] { { criteria3 } }
Design
{ { design_link } }
Technical Considerations
{ { tech_notes } } labels : [ "feature" , "needs-refinement" ] project : "{{roadmap_project}}" Sub-Issue Structure epic_breakdown : parent : title : "{{epic_name}}" type : "Project" sub_issues : - title : "Design: {{epic_name}}" labels : [ "design" ] estimate : 3 - title : "Backend: {{epic_name}}" labels : [ "backend" ] estimate : 5 - title : "Frontend: {{epic_name}}" labels : [ "frontend" ] estimate : 5 - title : "Testing: {{epic_name}}" labels : [ "qa" ] estimate : 2 - title : "Documentation: {{epic_name}}" labels : [ "docs" ] estimate : 1 Cycle Management Cycle Planning cycle_config : duration : 2_weeks planning : capacity_per_engineer : 8
points
buffer_percentage : 20 milestones : - day : 1 event : "Cycle Start" - day : 10 event : "Feature Freeze" - day : 12 event : "Code Freeze" - day : 14 event : "Release" auto_rollover : enabled : true statuses : [ "Backlog" , "Todo" ] exclude_labels : [ "blocked" ] Cycle Dashboard CYCLE 24 - WEEK 2/2 ═══════════════════════════════════════ Progress: ████████████████░░░░ 78% Complete Story Points: Planned: 42 Completed: 33 ████████████████░░░░ Remaining: 9 ████░░░░░░░░░░░░░░░░ BY STATUS: Done ████████████████ 18 In Review ████░░░░░░░░░░░░ 5 In Progress ██░░░░░░░░░░░░░░ 3 Todo ██░░░░░░░░░░░░░░ 2 TEAM PROGRESS: Sarah ██████████████░░ 8/10 pts Mike ████████████████ 12/12 pts Alex ██████████░░░░░░ 7/10 pts Lisa ████████████░░░░ 6/10 pts BLOCKERS: • LIN-234: Waiting for API access • LIN-256: Design review pending GitHub Integration Branch & PR Sync github_sync : branch_format : "{{username}}/lin-{{issue_number}}-{{issue_slug}}" on_branch_created : - set_status : "In Progress" - add_assignee : branch_creator on_pr_opened : - set_status : "In Review" - add_link : pr_url - add_comment : "PR opened: {{pr_url}}" on_pr_merged : - set_status : "Done" - add_comment : "Merged in {{pr_url}}" on_pr_closed : - add_comment : "PR closed without merge" commit_linking : patterns : - "LIN-{{number}}" - "lin-{{number}}" - "Fixes LIN-{{number}}" CI/CD Integration cicd_integration : on_build_failed : - add_label : "ci-failed" - add_comment : | ❌ Build failed {{build_url}} on_build_passed : - remove_label : "ci-failed" on_deploy_staging : - add_label : "on-staging" - add_comment : "Deployed to staging: {{staging_url}}" on_deploy_production : - add_label : "released" - add_comment : "Released to production 🚀" Labels & Organization Label System labels : type : - name : "bug" color : "#eb5757" - name : "feature" color : "#5e6ad2" - name : "improvement" color : "#26b5ce" - name : "chore" color : "#bec2c8" priority : - name : "urgent" color : "#eb5757" - name : "high" color : "#f2994a" - name : "medium" color : "#f2c94c" - name : "low" color : "#bec2c8" area : - name : "frontend" color : "#5e6ad2" - name : "backend" color : "#26b5ce" - name : "infrastructure" color : "#bb87fc" - name : "design" color : "#f7b500" status : - name : "blocked" color : "#eb5757" - name : "needs-review" color : "#f2994a" - name : "ready" color : "#0e7a42" Reporting Velocity Tracking velocity_report : metrics : - completed_points_per_cycle - issues_closed_per_cycle - cycle_completion_rate - carryover_percentage chart_data : cycles : last_6 show_trend : true show_commitment : true Team Analytics TEAM VELOCITY - LAST 6 CYCLES ═══════════════════════════════════════ │ 50 ┤ │ │ ▓▓ │ 40 ┤ ▓▓ ▓▓ ▓▓ ▓▓ │ │ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ │ 30 ┤ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ │ │ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ │ 20 ┤ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ │ │ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ │ 10 ┤ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ │ │ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ │ 0 ┴───────────────────────── C19 C20 C21 C22 C23 C24 Average: 38 pts | Trend: +8% Completion Rate: 92% API Examples GraphQL Queries
Create Issue
mutation CreateIssue { issueCreate ( input : { teamId : " team-id " title : " New Feature Request " description : " Description here " priority : 2 labelIds : [ "label-id" ] } ) { success issue { id identifier url } } }
Update Issue Status
mutation UpdateIssue { issueUpdate ( id : " issue-id " input : { stateId : " state-id " assigneeId : "user-id" } ) { success } }
Query Cycle Issues
- query
- CycleIssues
- {
- cycle
- (
- id
- :
- "cycle-id"
- )
- {
- name
- issues
- {
- nodes
- {
- identifier
- title
- state
- {
- name
- }
- assignee
- {
- name
- }
- estimate
- }
- }
- }
- }
- Best Practices
- Quick Triage
-
- Process new issues daily
- Consistent Estimates
-
- Use planning poker
- Link Everything
-
- Connect PRs, commits, docs
- Use Projects
-
- Organize related work
- Cycle Commitment
-
- Protect sprint scope
- Regular Grooming
-
- Keep backlog healthy
- Automate Status
-
- Let integrations update
- Measure Velocity
- Track team capacity